package com.ruoyi.products.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 订单对象 buss_order
 *
 * @author star
 * @date 2025-06-06
 */
public class BussOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单id */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNo;

    /** 套餐id */
    @Excel(name = "套餐id")
    private Long couponsId;

    private BussCoupons  coupons;

    /** openId */
    @Excel(name = "openId")
    private String openId;

    /** 三方订单号 */
    @Excel(name = "三方订单号")
    private String thirdOrderNo;

    /** 交易类型 */
    private String transactionType;

    /** 付款银行 */
    private String paymentBank;

    /** 订单金额 */
    @Excel(name = "订单金额")
    private BigDecimal orderAmount;

    /** 支付完成时间   年月日时分秒*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentCompletionTime;

    /** 支付类型 0微信/1支付宝 */
    @Excel(name = "支付类型 0微信/1支付宝")
    private String paymentType;

    /** 0未退款/1已退款 */
    @Excel(name = "0未退款/1已退款")
    private String isRefund;

    /** 微信支付退款单号 */
    @Excel(name = "微信支付退款单号")
    private String refundId;

    /** 退款单号 */
    @Excel(name = "退款单号")
    private String outRefundNo;

    /** 订单有效时间 */
    @Excel(name = "订单有效时间")
    private Long orderTimeToLive;

    /** 微信支付信息 */
    @Excel(name = "微信支付信息")
    private String wxPayInfo;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setOrderNo(String orderNo)
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo()
    {
        return orderNo;
    }

    public void setCouponsId(Long couponsId)
    {
        this.couponsId = couponsId;
    }

    public Long getCouponsId()
    {
        return couponsId;
    }

    public void setOpenId(String openId)
    {
        this.openId = openId;
    }

    public BussCoupons getCoupons() {
        return coupons;
    }

    public void setCoupons(BussCoupons coupons) {
        this.coupons = coupons;
    }

    public String getOpenId()
    {
        return openId;
    }

    public void setThirdOrderNo(String thirdOrderNo)
    {
        this.thirdOrderNo = thirdOrderNo;
    }

    public String getThirdOrderNo()
    {
        return thirdOrderNo;
    }

    public void setTransactionType(String transactionType)
    {
        this.transactionType = transactionType;
    }

    public String getTransactionType()
    {
        return transactionType;
    }

    public void setPaymentBank(String paymentBank)
    {
        this.paymentBank = paymentBank;
    }

    public String getPaymentBank()
    {
        return paymentBank;
    }

    public void setOrderAmount(BigDecimal orderAmount)
    {
        this.orderAmount = orderAmount;
    }

    public BigDecimal getOrderAmount()
    {
        return orderAmount;
    }

    public void setPaymentCompletionTime(Date paymentCompletionTime)
    {
        this.paymentCompletionTime = paymentCompletionTime;
    }

    public Date getPaymentCompletionTime()
    {
        return paymentCompletionTime;
    }

    public void setPaymentType(String paymentType)
    {
        this.paymentType = paymentType;
    }

    public String getPaymentType()
    {
        return paymentType;
    }

    public void setIsRefund(String isRefund)
    {
        this.isRefund = isRefund;
    }

    public String getIsRefund()
    {
        return isRefund;
    }

    public void setRefundId(String refundId)
    {
        this.refundId = refundId;
    }

    public String getRefundId()
    {
        return refundId;
    }

    public void setOutRefundNo(String outRefundNo)
    {
        this.outRefundNo = outRefundNo;
    }

    public String getOutRefundNo()
    {
        return outRefundNo;
    }

    public void setOrderTimeToLive(Long orderTimeToLive)
    {
        this.orderTimeToLive = orderTimeToLive;
    }

    public Long getOrderTimeToLive()
    {
        return orderTimeToLive;
    }

    public void setWxPayInfo(String wxPayInfo)
    {
        this.wxPayInfo = wxPayInfo;
    }

    public String getWxPayInfo()
    {
        return wxPayInfo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderNo", getOrderNo())
            .append("couponsId", getCouponsId())
            .append("openId", getOpenId())
            .append("thirdOrderNo", getThirdOrderNo())
            .append("transactionType", getTransactionType())
            .append("paymentBank", getPaymentBank())
            .append("orderAmount", getOrderAmount())
            .append("paymentCompletionTime", getPaymentCompletionTime())
            .append("paymentType", getPaymentType())
            .append("isRefund", getIsRefund())
            .append("refundId", getRefundId())
            .append("outRefundNo", getOutRefundNo())
            .append("orderTimeToLive", getOrderTimeToLive())
            .append("wxPayInfo", getWxPayInfo())
            .toString();
    }
}
